iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 14
0
自我挑戰組

用 vim 打造屬於自己的 IDE系列 第 14

Day 14 用 vim script 客製化套件 (二)

  • 分享至 

  • xImage
  •  

先複習一下昨天客製化的結果:

看起來已經有模有樣了呢!但距離我們終極的目標 —— 將 vim 打造成 IDE 還有很長一段路要走呢~

今天就著重於外觀,將我們的 IDE 的稍微改造一下吧~

nord —— 簡約美觀的主題

Plug 'arcticicestudio/nord-vim'

不論是在 Vistual Studio Code 或是在 vim 我都最喜歡 Nord 這款外觀!

安裝完後只需要在 vim 設定檔指定安裝好的主題就可以了~ (當然你也可以選用不同的主題)

let g:airline_theme='nord'

airline —— 狀態列與標籤

Plug 'vim-airline/vim-airline'

一般的 IDE 底部都會有個狀態列,包含當前的行數、字數,語言甚至是 git 的分支,都會在狀態列下顯示。
當然也有人為 vim 做了個強大的狀態列顯示插件,他稱為 airline

它支援了不僅檔案種類、行數、字數等這些基本的資訊,還整合了包含 nerdtreevim-gitgutter 這些許多人使用的套件,讓狀態列的顯示更為完整。

為了符合我們的主題 powerlevel9k,我們開啟 powerline fonts 的設定吧。

let g:airline_powerline_fonts=1

我們也在上方加入標籤,這樣未來就方便切換檔案進行編輯啦~

let g:airline#extensions#tabline#enabled=1

加入了這個設定後,我們就可以在 vim 視窗的上方看到標籤列了!

不過標籤列最右方的 buffers 是什麼意思呢?

編輯器在開啟檔案的時候,通常都會將檔案複製一份到暫存器 (buffer),再由暫存器進行讀寫,存檔時再將暫存器所代表的檔案覆蓋過去哦!所以當 IDE 幫你開啟檔案時,並不是直接對檔案進行操作。
你可以做個小實驗,用兩個簡單的文字編輯器開啟同一個檔案,當 A 編輯器更改後存檔時,B 編輯器的檔案並不會更新,因為兩個編輯器所使用的暫存檔不同。
當然有些軟體會自動偵測檔案的變更,不過執行的策略可能就分成:

  1. 將檔案更新,遺失原先在這個軟體編輯的內容。
  2. 提醒使用者檔案已變更,是否要將目前的內容儲存。

vim 當中的暫存檔案都是以 .swp (swap file) 作為暫存檔案,vim 8 是儲存在相同的位置底下,到了 NeoVim 則是統一放在 ~/.local/share/nvim/swap 資料夾底下。

因為我比較笨拙,怕忘了在 .gitignore 中加入 .swp,不小心也將暫存檔加進 commit ,所以這點我比較喜歡 NeoVim 的配置~

雖然開啟了標籤的設定,可是要怎麼切換標籤啊?

先給大家看看切換的指令唄。

指令 功能
:bnext 後一個暫存
:bprevious 前一個暫存
:bfirst 第一個暫存
:blast 最後一個暫存
:b1 第 1 個暫存
:1bn 跳下 1 個暫存
:b <buffer-name> 切換到指定的暫存
:bd 關閉當前的暫存

當然輸入指令切換也不是很費功夫,只是我真的很懶所以也寫好了快捷鍵 orz...

nnoremap <Leader>[ :bprevious<CR>
nnoremap <Leader>] :bnext<CR>
nnoremap <Leader>1 :bfirst<CR>
nnoremap <Leader>2 :bfirst<CR>:bn<CR>
nnoremap <Leader>3 :bfirst<CR>:2bn<CR>
nnoremap <Leader>4 :bfirst<CR>:3bn<CR>
nnoremap <Leader>5 :bfirst<CR>:4bn<CR>
nnoremap <Leader>6 :bfirst<CR>:5bn<CR>
nnoremap <Leader>7 :bfirst<CR>:6bn<CR>
nnoremap <Leader>8 :bfirst<CR>:7bn<CR>
nnoremap <Leader>9 :blast<CR>
nnoremap <Leader>w :bd<CR>

大概就是

  1. \ + [ 去前一個暫存
  2. \ + ] 去後一個暫存
  3. \ + 數字鍵 (1 ~ 8) 去特定的暫存
  4. \ + 9 去最後一個暫存
  5. \ + w 關閉當前暫存

因為 nerdtree 也包含在 buffers 裡面,根據開啟的順序會影響到切換的結果,所以數字鍵切換是先到第一個再去指定的暫存。

可是顏色和風格怎麼和我們的主題格格不入?

airline-theme —— 自訂 airline 外觀

Plug 'vim-airline/vim-airline-theme'

那有什麼問題,我們馬上藉由 airline-theme 這個套件來更改外觀!這是一個包含了各式各樣 airline 主題的套件,所有的主題會放在套件資料夾底下的 vim-airline-theme/autoload/airline/themes/ 裡面,當中就有 base16_nord.vim 這個主題啦!

馬上來套用看看。

let g:airline_theme='nord'

當然也可以試著切換看看其他的主題~這邊給大家看看官方所有主題的截圖

vim-airline-screenshots

乍看之下還以為這是 VS Code 呢!之後就繼續介紹其他的套件吧~


上一篇
Day 13 用 vim script 客製化套件 (一)
下一篇
Day 15 用 vim script 客製化套件 (三)
系列文
用 vim 打造屬於自己的 IDE19
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言